package iot.wlink.network.rule.exec;

import iot.wlink.network.payload.up.UpPayload;
import iot.wlink.network.rule.model.RuleAction;
import iot.wlink.network.rule.model.RuleCondition;

import java.util.List;

/**
 * @author : willian fu
 * @date : 2021/8/23
 * 规则动作执行器，用来执行规则的动作组，应该使用异步提交
 */
@FunctionalInterface
public interface RuleActionExec {

    /**
     * 动作执行
     * @param payload 触发动作的消息
     * @param conditions 触发动作的条件
     * @param actions 需要执行的动作
     */
    void execute(UpPayload payload, List<RuleCondition> conditions, List<RuleAction> actions);
}
